<?php

class RelatoController extends BaseController {

    public function showRelato($slug, $id){

        $relato = Relato::active()
                ->sinAnonimos()
                ->where('slug', $slug)
                ->with([
                    'objetos' => function($query) {
                        $query->with(['imagesOrdered' => function($query) {$query->where('imageobj_objeto.position', 0);}])->orderBy('position');
                        },
                    'firstTag' => function($query) {
                            $query->select('nombre');
                        }
                    ])
                ->find($id);
        if( is_null($relato)) {
            App::abort(404);
        }
        
        $tag = $relato->firstTag->first(); // le pasamos el objeto
        $images = $relato->imagesOrdered;
        $objetos = $relato->objetos;

        return View::make('relato', compact('relato', 'tag', 'images', 'objetos'));
        
    }
    
    public function showRelatos($slug, $id){

        // fetch all relatos de la categoria solicitada & ACTIVOS & SIN ANONIMOS,
        $relatos = Relato::active()
                        ->with(['imagesOrdered' => function($query) {$query->where('imagerel_relato.position', 0);}])
                        ->whereHas('tags', function($query) use ($id, $slug) {
                            $query->where('tag_rels.id', $id)->where('tag_rels.slug', $slug);
                        })
                        ->orderBy('position')
                        ->paginate(10);
        
        if( $relatos->isEmpty() ) {
            App::abort(404);
        }

        $lastPage = $relatos->getLastPage(); // ultima pag para infinitescroll
        $categ = TagRel::find($id, ['nombre']);
        
        return View::make('categoria_rel', compact('relatos','categ', 'lastPage'));
    }
        
}



